#ifndef PLCMETHODDECLSYMBOL_H
#define PLCMETHODDECLSYMBOL_H

#include "plc2llvm/PLCSymbols/PLCDeclarationSymbol.h"
#include "plc2llvm/PLCSymbols/ImportScope.h"
#include "plc2llvm/PLCSymbols/FunctionInOut.h"
#include "plc2llvm/PLCSymbols/UsingNamespace.h"
#include "plc2llvm/PLCSymbols/Modifiers.h"

class PLCMethodDeclSymbol :
        public PLCDeclarationSymbol,
        public ImportScope,
        public FunctionInOut,
        public UsingNamespace {
private:
    bool ifAbstract;
    bool ifFinal;
    bool ifOverride;
    Access accessModifier;
public:
    bool isIfAbstract() const;

    void setIfAbstract(bool ifAbstract);

    bool isIfFinal() const;

    void setIfFinal(bool ifFinal);

    bool isIfOverride() const;

    void setIfOverride(bool ifOverride);

    Access getAccessModifier() const;

    void setAccessModifier(Access accessModifier);

};



#endif